package pl.qsoft.db.storedProc.engine;

import javax.sql.DataSource;

import pl.qsoft.db.annotation.StoredProcedureDefinition;

/**
 * Stored procedure invocation engine main interface. Defines one method for generic stored procedure calls 
 * @author Wojciech Kudla
 */
public interface ProcedureInvocationEngine {

	/**
	 * Main engine method. Allows stored procedure calls in a generic way given only procedure parameter values
	 * @param params Parameter values
	 * @return Result transformed by ResultTransformer defined in the {@link StoredProcedureDefinition}
	 */
	public Object invoke(Object... params);
	
	public void setDatasource(DataSource datasource);
	
}
